精品一区二区视频-日本v片-国产污网站-日本黄色一区二区-温柔女教师在线观看-久久久久久美女-97青草-亚洲情侣av-香蕉二区-2019亚洲男人天堂-椎名由奈av一区二区三区

聯(lián)
咨詢熱線:

17661095540

聯(lián)系QQ:

2863379292

官方微信:

移動(dòng)開發(fā):序列化與反序列化Parcelable和Serializable淺析

微信營(yíng)銷

導(dǎo)讀:在日常的應(yīng)用開發(fā)中,我們可能需要讓某些對(duì)象離開內(nèi)存空間,存儲(chǔ)到物理磁盤,以便長(zhǎng)期保存,同時(shí)也能減少對(duì)內(nèi)存的壓力,而在需要時(shí)再將其從磁盤讀取到內(nèi)存,比如將某個(gè)特定的對(duì)象保存到

發(fā)表日期:2019-12-10

文章編輯:興田科技

瀏覽次數(shù):7329

標(biāo)簽:

在日常的應(yīng)用開發(fā)中,我們可能需要讓某些對(duì)象離開內(nèi)存空間,存儲(chǔ)到物理磁盤,以便長(zhǎng)期保存,同時(shí)也能減少對(duì)內(nèi)存的壓力,而在需要時(shí)再將其從磁盤讀取到內(nèi)存,比如將某個(gè)特定的對(duì)象保存到文件中,隔一段時(shí)間后再把它讀取到內(nèi)存中使用,那么該對(duì)象就需要實(shí)現(xiàn)序列化操作,在Java中可以使用Serializable接口實(shí)現(xiàn)對(duì)象的序列化,而在android中既可以使用Serializable接口實(shí)現(xiàn)對(duì)象序列化也可以使用parcelable接口實(shí)現(xiàn)對(duì)象序列化,但是在內(nèi)存操作時(shí)更傾向于實(shí)現(xiàn)parcelable接口,這樣會(huì)使用傳輸效率更高效。接下來(lái)我們將分別詳細(xì)地介紹這樣兩種序列化操作。

了解序列化與反序列

序列化

由于存在于內(nèi)存中的對(duì)象都是暫時(shí)的,無(wú)法長(zhǎng)期駐存,為了把對(duì)象的狀態(tài)保持下來(lái),這時(shí)需要把對(duì)象寫入到磁盤或者其他介質(zhì)中,這個(gè)過程就叫做序列化。

反序列化

反序列化恰恰是序列化的反向操作,也就是說(shuō),把已存在在磁盤或者其他介質(zhì)中的對(duì)象,反序列化(讀?。┑絻?nèi)存中,以便后續(xù)操作,而這個(gè)過程就叫做反序列化。

概括性來(lái)說(shuō)序列化是指將對(duì)象實(shí)例的狀態(tài)存儲(chǔ)到存儲(chǔ)媒體(磁盤或者其他介質(zhì))的過程。在此過程中,先將對(duì)象的公共字段和私有字段以及類的名稱(包括類所在的程序集)轉(zhuǎn)換為字節(jié)流,然后再把字節(jié)流寫入數(shù)據(jù)流。在隨后對(duì)對(duì)象進(jìn)行反序列化時(shí),將創(chuàng)建出與原對(duì)象完全相同的副本。

實(shí)現(xiàn)序列化的必要條件

一個(gè)對(duì)象要實(shí)現(xiàn)序列化操作,該類就必須實(shí)現(xiàn)了Serializable接口或者parcelable接口,其中Serializable接口是在java中的序列化抽象類,而parcelable接口則是android中特有的序列化接口,在某些情況下,parcelable接口實(shí)現(xiàn)的序列化更為高效,關(guān)于它們的實(shí)現(xiàn)案例我們后續(xù)會(huì)分析,這里只要清楚知道實(shí)現(xiàn)序列化操作時(shí)必須實(shí)現(xiàn)Serializable接口或者parcelable接口之一即可。

序列化的應(yīng)用情景

主要有以下情況(但不限于以下情況)

1)內(nèi)存中的對(duì)象寫入到硬盤;

2)用套接字在網(wǎng)絡(luò)上傳送對(duì)象;

3)通過RMI(RemoteMethodInvoke遠(yuǎn)程方法調(diào)用)傳輸對(duì)象;

Serializable

Serializable是java提供的一個(gè)序列化接口,它是一個(gè)空接口,專門為對(duì)象提供標(biāo)準(zhǔn)的序列化和反序列化操作,使用Serializable實(shí)現(xiàn)類的序列化比較簡(jiǎn)單,只要在類聲明中實(shí)現(xiàn)Serializable接口即可,同時(shí)強(qiáng)烈建議聲明序列化標(biāo)識(shí)。

parcelable

鑒于Serializable在內(nèi)存序列化上開銷比較大,而內(nèi)存資源屬于android系統(tǒng)中的稀有資源(android系統(tǒng)分配給每個(gè)應(yīng)用的內(nèi)存開銷都是有限的),為此android中提供了parcelable接口來(lái)實(shí)現(xiàn)序列化操作,parcelable的性能比Serializable好,在內(nèi)存開銷方面較小,所以在內(nèi)存間數(shù)據(jù)傳輸時(shí)推薦使用parcelable,如通過Intent在activity間傳輸數(shù)據(jù),而parcelable的缺點(diǎn)就使用起來(lái)比較麻煩。

相關(guān)推薦

更多新聞

  • 2-20

    2020

    微信營(yíng)銷 / 2020-02-20

    做微商成績(jī)不穩(wěn)定,原因在哪里?

    一部手機(jī),走遍天下。不少人因?yàn)閺氖挛⑸虒?shí)現(xiàn)了屌絲的逆襲,走向了人生的巔峰。在很多人眼里,微商會(huì)越做越輕松,越做越賺錢。然而,很多人從事微商一段時(shí)間之后,就達(dá)到了瓶頸,業(yè)績(jī)時(shí)好

    View details

  • 8-28

    2023

    微信營(yíng)銷 / 2023-08-28

    商水網(wǎng)絡(luò)推廣——推動(dòng)您的業(yè)務(wù)增長(zhǎng)的關(guān)鍵

    商水網(wǎng)絡(luò)推廣是指利用互聯(lián)網(wǎng)和各種在線平臺(tái)來(lái)宣傳和推廣您的產(chǎn)品和服務(wù)。這包括但不限于搜索引擎優(yōu)化(SEO),內(nèi)容營(yíng)銷,社交媒體推廣,電子郵件營(yíng)銷等。通過使用商水網(wǎng)絡(luò)推廣,您可以將您的業(yè)務(wù)推向更廣泛的受眾,增加品牌知名度,并促進(jìn)銷售增長(zhǎng)。

    View details

  • 8-24

    2023

    微信營(yíng)銷 / 2023-08-24

    乳山網(wǎng)站優(yōu)化- 提高你的線上業(yè)務(wù)

    乳山網(wǎng)站優(yōu)化是一個(gè)逐步提升的過程,通常需要一段時(shí)間才能看到明顯的結(jié)果。這取決于你的網(wǎng)站目前的狀態(tài)以及你所采取的優(yōu)化策略的效果。一般來(lái)說(shuō),可以在幾個(gè)月到一年的時(shí)間內(nèi)看到顯著的改進(jìn)。

    View details

  • 8-28

    2023

    微信營(yíng)銷 / 2023-08-28

    咸陽(yáng)網(wǎng)站建設(shè)公司:打造您的在線品牌

    咸陽(yáng)網(wǎng)站建設(shè)公司是一家領(lǐng)先的網(wǎng)站開發(fā)和設(shè)計(jì)公司,我們致力于幫助企業(yè)、個(gè)人和組織在互聯(lián)網(wǎng)上樹立強(qiáng)大的在線存在。我們提供專業(yè)的網(wǎng)站建設(shè)服務(wù),根據(jù)您的需求和目標(biāo)創(chuàng)建定制的網(wǎng)站解決方案。我們的團(tuán)隊(duì)由一群經(jīng)驗(yàn)豐富且富有創(chuàng)造力的專業(yè)人士組成,他們具備廣泛的技術(shù)知識(shí)和對(duì)用戶體驗(yàn)的深入了解。

    View details

主站蜘蛛池模板: 凤凰县| 上思县| 伊吾县| 安图县| 济南市| 筠连县| 奉贤区| 乡宁县| 樟树市| 庆阳市| 江都市| 东山县| 绥芬河市| 阿巴嘎旗| 镇宁| 大悟县| 永济市| 廉江市| 安西县| 沙河市| 深州市| 逊克县| 大邑县| 栾城县| 库车县| 临武县| 乐昌市| 交口县| 海兴县| 尖扎县| 靖安县| 临武县| 河津市| 泰顺县| 柘城县| 乐亭县| 贡嘎县| 密山市| 顺义区| 泰顺县| 永新县|